package com.one.blocks.rbac.log;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author linfuxin Created on 2022-02-14 10:25:04
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Log {
    String module() default "";

    OperateType operateType() default OperateType.OTHER;

    /**
     * 操作类型为OperateType时,使用该信息
     *
     * @return 操作信息
     */
    String other() default "";

    int[] argIndex() default {};

    /**
     * 是否保存数据库
     *
     * @return true 保存到数据库
     */
    public boolean save() default true;
}
